<?php


class Bibliotecario {
    
    static $__colBibliotecarios = null;
    
    public function __construct($id, $nombre, $login, $password, $bloqueado, $rol_id) {
        $this->id = $id;
        $this->nombre = $nombre;
        $this->login = $login;
        $this->password = $password;
        $this->bloqueado = $bloqueado;
        $this->rol_id = $rol_id;
    }
    
    public function FromArray($data) {
        $this->id = $data['bibliotecario_id'];
        $this->nombre = $data['bibliotecario_nombre'];
        $this->login = $data['bibliotecario_login'];
        $this->password = $data['bibliotecario_password'];
        $this->bloqueado = $data['bibliotecario_bloqueado'];
        $this->rol_id = $data['bibliotecario_rol_id'];
    }
    
    public function ToArray(){
        return array (
            'bibliotecario_id' => $this->id,
            'bibliotecario_nombre' => $this->nombre,
            'bibliotecario_login' => $this->login,
            'bibliotecario_password' => $this->password,
            'bibliotecario_bloqueado' => $this->bloqueado,
            'bibliotecario_rol_id' => $this->rol_id,
        );
    }
    
    public static function GetInstancia($id) {
        if (Bibliotecario::$__colBibliotecarios == null) {
            Bibliotecario::$__colBibliotecarios = array();
        }
        if (array_key_exists($id, Bibliotecario::$__colBibliotecarios)) {
            return Bibliotecario::$__colBibliotecarios[$id];
        } else {
            $Mod_B = new Model_Bibliotecarios();
            $data = $Mod_B->GetBibliotecarioById($id);
            if (count($data) > 0) {
                $obj_B = new Bibliotecario(
                            $data[0]['bibliotecario_id'],
                            $data[0]['bibliotecario_nombre'],
                            $data[0]['bibliotecario_login'],
                            $data[0]['bibliotecario_password'],
                            $data[0]['bibliotecario_bloqueado'],
                            $data[0]['bibliotecario_rol_id']
                        );
                Bibliotecario::$__colBibliotecarios[$id] = $obj_B;
                return Bibliotecario::$__colBibliotecarios[$id];
            } else {
                return null;
            }
        }
    }

    public static function GetBibliotecarios($like = null) {
        Bibliotecario::$__colBibliotecarios = array();
                
        $Mod_B = new Model_Bibliotecarios();
        $data = $Mod_B->GetBibliotecarios($like);
        
        foreach ($data as $row) {
            $obj_B = new Bibliotecario(
                $row['bibliotecario_id'],
                $row['bibliotecario_nombre'],
                $row['bibliotecario_login'],
                $row['bibliotecario_password'],
                $row['bibliotecario_bloqueado'],
                $row['bibliotecario_rol_id']
            );
            Bibliotecario::$__colBibliotecarios[$obj_B->id] = $obj_B;
        }
        return Bibliotecario::$__colBibliotecarios;
    }
    
    public function Guardame() {
        $Mod_B = new Model_Bibliotecarios();
        return $Mod_B->Guardar($this);
    }

    public function Modificame($BibliotecarioId) {
        $Mod_B = new Model_Bibliotecarios();
        return $Mod_B->Modificar($BibliotecarioId, $this);
    }
    
    public function Eliminame() {
        $Mod_B = new Model_Bibliotecarios();
        return $Mod_B->Eliminar($this->id);
    }
    
}
?>
